"""定义数据项的结构"""
import scrapy

class FinancialNewsItem(scrapy.Item):
    """
    金融新闻数据项
    用于存储从网页爬取的金融新闻信息
    """
    # 文章URL
    url = scrapy.Field()
    # 域名
    domain = scrapy.Field()
    # 文章标题
    title = scrapy.Field()
    # 文章内容
    content = scrapy.Field()
    # 发布时间
    publish_time = scrapy.Field()
    # 文章来源
    source = scrapy.Field()
    # 关键词
    keywords = scrapy.Field()
    # 爬取时间
    crawled_time = scrapy.Field()
    # 数据状态（待处理、已处理、无效等）
    status = scrapy.Field(default='pending')

class FinancialEntityItem(scrapy.Item):
    """
    金融实体数据项
    用于存储从文本中提取的金融实体信息
    """
    # 关联的新闻ID
    news_id = scrapy.Field()
    # 实体名称
    entity_name = scrapy.Field()
    # 实体类型
    entity_type = scrapy.Field()
    # 实体情感极性
    sentiment_polarity = scrapy.Field()
    # 实体情感得分
    sentiment_score = scrapy.Field()
    # 实体在文本中的上下文
    context = scrapy.Field()
    # 提取时间
    extracted_time = scrapy.Field()

class RawDataItem(scrapy.Item):
    """
    原始数据项
    用于存储未经过处理的原始数据
    """
    # 数据来源
    source = scrapy.Field()
    # 数据类型
    data_type = scrapy.Field()
    # 原始内容
    raw_content = scrapy.Field()
    # 采集时间
    collected_time = scrapy.Field()
    # 数据指纹（用于去重）
    fingerprint = scrapy.Field()
